package leetcode.editor.cn;

class Solution91 {
    // fi=f(i+1) s[i]!=0
    // fi=f(i+2) s[i-1]!=0&&s[i-2,i-1]有效
    public int numDecodings(String s) {
        //可以从s.charAt(i)开始,也可从s.subString(i,i+2)开始
        //dfs
        int pre=1,ppre=0;//pre为fi-1，ppre为fi-2
        int i=1;
        int now;
        while(i<=s.length()){
            now=0;
            if(s.charAt(i-1)!='0'){
                now+=pre;
            }
            if(i-2>=0&&s.charAt(i-2)!='0'&&Integer.valueOf(s.substring(i-2,i))<=26){
                now+=ppre;
            }
            ppre=pre;
            pre=now;
            i++;
        }
        return pre;
    }

}